import functools

n = int(input())

# 生成1到n的数字列表
numbers = list(range(1, n + 1))

# 自定义排序：比较两个数字的二进制字符串拼接后的结果
def compare(a, b):
    ab = bin(a)[2:] + bin(b)[2:]
    ba = bin(b)[2:] + bin(a)[2:]
    if ab > ba:
        return -1
    elif ab < ba:
        return 1
    else:
        return 0

# 使用自定义排序规则
numbers.sort(key=functools.cmp_to_key(compare))

# 拼接所有二进制字符串
binary_str = ''.join([bin(num)[2:] for num in numbers])

# 转换为十进制
result = int(binary_str, 2)

print(result)